<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<style>
  .app {
    padding: 20px;

  }
</style>
<body>
  <div class="app">
    <h2>TCP 是如何建立连接的?</h2>
    <p>

      <strong>三次握手</strong><br>

      1-客户端向服务端发送建立连接请求，客户端进入 SYN-SEND 状态<br>
      2-服务端收到建立连接请求后，向客户端发送一个应答，服务端进入 SYN-RECEIVED 状态<br>
      3-客户端接收到应答后，向服务端发送确认接收到应答，客户端进入 ESTABLISHED 状态<br>
      </p>
      <p>
        <strong>四次挥手</strong><br>

      1-客户端向服务端发送断开连接请求<br>
      2-服务端收到断开连接请求后，告诉应用层去释放 tcp 连接<br>
      3-服务端向客户端发送最后一个数据包 FINBIT ，服务端进入 LAST-ACK 状态<br>
      4-客户端收到服务端的断开连接请求后，向服务端确认应答<br>
      </p>
      <p><b>一般情况下</b> 三次握手四次挥手，客户端都是主动方，服务端都是被动方。<br>
        在状态方面：<br>
        &nbsp; &nbsp; 三次握手的客户端和服务端都是由原来的 closed 变为 established，<br>
        &nbsp; &nbsp;  四次挥手的客户端和服务端都是由原来的 established 变为 closed。</p>
  </div>
</body>
</html>